//
//  LBAnimation.h
//  Lottery360
//
//  Created by gujian on 16/3/9.
//  Copyright © 2016年 Qihoo. All rights reserved.
//

#import <Foundation/Foundation.h>

@protocol LBAnimationDelegate <NSObject>

@optional

/**
 *  动画将要结束时进行回调
 *  @param animatedView     动画的目标对象
 */
- (void)lbAnimationWillFinished:(UIView *)animatedView;

/**
 *  动画暂停时进行回调   同系统方法:animationDidStop:finished:
 *  @param anim       动画
 *  @param flag       动画是否完成
 */
- (void)lbAnimationDidStop:(CAAnimation *)anim finished:(BOOL)flag;

@end

@interface LBAnimation : NSObject

@property (nonatomic, weak) id<LBAnimationDelegate> delegate;

+ (instancetype)sharedInstance;

/**
 *  添加订单到购物车动画
 *
 *  @param targetView     需要添加动画的目标对象
 *  @param beginPos       动画的开始点
 *  @param endPos         动画的结束点
 *  @param scale          目标对象缩放大小
 */

- (void)throwObject:(UIView *)targetView From:(CGPoint)beginPos To:(CGPoint)endPos
              Scale:(CGFloat)scale;

/**
 *  按钮pop动画
 *
 *  @param targetView     需要添加动画的目标对象
 *  @param pos            目标对象的终止位置
 *  @param offset         动画延迟时间
 */
- (CABasicAnimation *)animationWithObject:(UIView *)targetView Pos:(CGPoint)pos TimeOffset:(CGFloat)offset;

/**
 *  按钮pop动画 关键帧动画
 *
 *  @param targetView     需要添加动画的目标对象
 *  @param pos            目标对象的终止位置
 *  @param offset         动画延迟时间
 */
- (CAKeyframeAnimation *)keyAnimationObject:(UIView *)targetView Pos:(CGPoint)pos TimeOffset:(CGFloat)offset;

@end
